/**
 * 主题基础类型定义
 */

// 主题基础接口
export interface Theme {
  id: string
  name: string // 中文名称
  nameEn: string // 英文名称
  description: string // 主题描述
  descriptionEn: string
  coverImage: string // 封面图
  icon: string // 图标
  color: string // 主题色
  artifactIds: string[] // 包含的文物ID列表
  order: number // 排序
}

// 主题基础类
export class ThemeBase implements Theme {
  id: string
  name: string
  nameEn: string
  description: string
  descriptionEn: string
  coverImage: string
  icon: string
  color: string
  artifactIds: string[]
  order: number

  constructor(data: Theme) {
    this.id = data.id
    this.name = data.name
    this.nameEn = data.nameEn
    this.description = data.description
    this.descriptionEn = data.descriptionEn
    this.coverImage = data.coverImage
    this.icon = data.icon
    this.color = data.color
    this.artifactIds = data.artifactIds
    this.order = data.order
  }

  // 获取本地化名称
  getName(locale: 'zh' | 'en' = 'zh'): string {
    return locale === 'zh' ? this.name : this.nameEn
  }

  // 获取本地化描述
  getDescription(locale: 'zh' | 'en' = 'zh'): string {
    return locale === 'zh' ? this.description : this.descriptionEn
  }

  // 获取文物数量
  getArtifactCount(): number {
    return this.artifactIds.length
  }
}

